#include<iostream>
#include<list>
using namespace std;

/*
    remove_if:带条件的删除
        实现：需要调用函数对象->重载()
        底层实现过程：
            remove_if遍历容器，将满足条件的元素删除 --> if(t1(元素)) 删除 

*/


class Test
{
public:
    /*
        重载圆括号
            1.返回值一定是bool
            2.形参类型必须跟容器中存放的数据类型一致，可以是普通变量或者是引用
    */
    bool operator()(int n)
    {
        cout << "n = " << n << endl;
        if (n > 100)
        {
            return true;
        }
        return false;
    }
};


int main()
{
    list<int> list1 = {12,12,12,56,96,12,968,12,745,12};
    cout << "===================remove_if====================" << endl;
    // 带条件的删除
    Test t1;
    list1.remove_if(t1);    

    for (auto i : list1)
    {
        cout << i << " ";
    }
    cout << endl;
    return 0;
}